home *** CD-ROM | disk | FTP | other *** search
- import java.io.BufferedReader;
- import java.io.FileReader;
- import java.io.OutputStream;
- import java.io.PrintStream;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Method;
- import java.util.Random;
-
- // $FF: renamed from: b
- class class_0 {
- // $FF: renamed from: for byte[]
- byte[] field_0;
- // $FF: renamed from: a boolean
- boolean field_1;
- // $FF: renamed from: do java.lang.reflect.Constructor
- Constructor field_2;
- // $FF: renamed from: if java.lang.reflect.Method
- Method field_3;
- // $FF: renamed from: int java.lang.reflect.Method
- Method field_4;
- // $FF: synthetic field
- static Class class$java$io$OutputStream;
- // $FF: synthetic field
- static Class class$java$lang$String;
- // $FF: synthetic field
- static Class array$Ljava$lang$String;
-
- // $FF: renamed from: if (byte[]) java.lang.String
- private String method_0(byte[] var1) {
- StringBuffer var2 = new StringBuffer(var1.length * 2);
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- int var4 = var1[var3] & 255;
- if (var4 < 16) {
- var2.append('0');
- }
-
- var2.append(Integer.toHexString(var4));
- }
-
- return var2.toString();
- }
-
- // $FF: renamed from: a (java.lang.String) byte[]
- private byte[] method_1(String var1) throws Exception {
- int var2 = var1.length() / 2;
- byte[] var3 = new byte[var2];
-
- for(int var4 = 0; var4 < var2; ++var4) {
- var3[var4] = (byte)Integer.parseInt(var1.substring(var4 * 2, (var4 + 1) * 2), 16);
- }
-
- return var3;
- }
-
- // $FF: renamed from: a (byte[]) byte[]
- private byte[] method_2(byte[] var1) {
- c var2 = new c();
- var2.a(var1, 0, var1.length);
- return var2.do();
- }
-
- class_0() throws a {
- Class var1 = this.method_6();
- this.field_2 = this.method_7(var1);
- this.field_3 = this.method_8(var1);
- this.field_4 = this.method_9(var1);
-
- try {
- StringBuffer var2 = new StringBuffer();
- var2.append("jav");
- var2.append("acb.");
- var2.append('k');
- var2.append('e');
- var2.append('y');
- BufferedReader var11 = new BufferedReader(new FileReader(var2.toString()));
-
- try {
- String var4 = var11.readLine();
- this.field_0 = this.method_2(this.method_1(var4));
- } finally {
- var11.close();
- }
- } catch (Throwable var10) {
- this.field_0 = new byte[20];
- Random var3 = new Random();
- var3.nextBytes(this.field_0);
- }
-
- }
-
- // $FF: renamed from: a (java.io.OutputStream, java.lang.String[]) int
- public int method_3(OutputStream var1, String[] var2) throws Exception {
- int var3 = 0;
- if (this.field_1) {
- Object var4 = null;
- Object var5 = this.field_2.newInstance((Object[])var4);
- var4 = new Object[]{var2};
- PrintStream var6 = System.err;
- System.setErr(new PrintStream(var1));
- var3 = (Integer)this.field_3.invoke(var5, (Object[])var4);
- System.setErr(var6);
- } else {
- Object[] var9 = new Object[]{var1, ""};
- Object var11 = this.field_2.newInstance(var9);
- var9 = new Object[]{var2};
- if ((Boolean)this.field_3.invoke(var11, var9)) {
- var3 = 0;
- } else if (this.field_4 != null) {
- var3 = (Integer)this.field_4.invoke(var11, (Object[])null);
- } else {
- var3 = 1;
- }
- }
-
- return var3;
- }
-
- // $FF: renamed from: a () java.lang.Class
- private Class method_4() throws Exception {
- Class var1 = Class.forName("com.sun.tools.javac.Main");
- this.field_1 = true;
- return var1;
- }
-
- // $FF: renamed from: do () java.lang.Class
- private Class method_5() throws Exception {
- Class var1 = Class.forName("sun.tools.javac.Main");
- this.field_1 = false;
- return var1;
- }
-
- // $FF: renamed from: if () java.lang.Class
- private Class method_6() throws a {
- try {
- return this.method_4();
- } catch (Exception var3) {
- try {
- return this.method_5();
- } catch (Exception var2) {
- throw new a("A JavaC's main class is not found.");
- }
- }
- }
-
- // $FF: renamed from: a (java.lang.Class) java.lang.reflect.Constructor
- Constructor method_7(Class var1) throws a {
- try {
- Class[] var2;
- if (this.field_1) {
- var2 = null;
- } else {
- var2 = new Class[]{class$java$io$OutputStream == null ? (class$java$io$OutputStream = class$("java.io.OutputStream")) : class$java$io$OutputStream, class$java$lang$String == null ? (class$java$lang$String = class$("java.lang.String")) : class$java$lang$String};
- }
-
- return var1.getConstructor(var2);
- } catch (Exception var3) {
- throw new a("The JavaC's constructor is invalid.");
- }
- }
-
- // $FF: renamed from: if (java.lang.Class) java.lang.reflect.Method
- Method method_8(Class var1) throws a {
- String var2 = "The JavaC's compile method is invalid.";
-
- Method var3;
- try {
- Class[] var4 = new Class[]{array$Ljava$lang$String == null ? (array$Ljava$lang$String = class$("[Ljava.lang.String;")) : array$Ljava$lang$String};
- var3 = var1.getMethod("compile", var4);
- } catch (Exception var5) {
- throw new a(var2);
- }
-
- if (this.field_1) {
- if (var3.getReturnType() == Integer.TYPE) {
- return var3;
- }
- } else if (var3.getReturnType() == Boolean.TYPE) {
- return var3;
- }
-
- throw new a(var2);
- }
-
- // $FF: renamed from: do (java.lang.Class) java.lang.reflect.Method
- Method method_9(Class var1) throws a {
- if (this.field_1) {
- return null;
- } else {
- Method var2;
- try {
- var2 = var1.getMethod("getExitStatus", (Class[])null);
- } catch (Exception var4) {
- return null;
- }
-
- return var2.getReturnType() == Integer.TYPE ? var2 : null;
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
- }
-